import pandas as pd
from pathlib import Path
import os

def process_merchant_list(folder_path):
    """处理指定文件夹中的三商清单明细.xlsx文件"""
    input_file = folder_path / "三商清单明细.xlsx"
    output_file = folder_path / "三商清单处理结果.xlsx"
    
    if not input_file.exists():
        print(f"在 {folder_path} 中未找到三商清单明细.xlsx")
        return
    
    try:
        # 读取第二个表，从第三行开始（header=2）
        df = pd.read_excel(input_file, sheet_name=1, header=2)
    except Exception as e:
        print(f"处理 {input_file} 时出错: {str(e)}")
        return
    
    results = []
    
    for _, row in df.iterrows():
        company = str(row.iloc[1]).strip()  # 第二列
        people_info = str(row.iloc[4]).strip()  # 第五列
        if not company or company == 'nan':
            continue
        # 公司本身一行
        results.append({'公司名称': company, '联系人': company, '身份': '公司'})
        # 解析联系人和身份
        # 例：胡韶轻（法定代表人、股东）卜凡斋（监事、控股股东、历史法定代表人）
        import re
        pattern = r'(.*?)（(.*?)）'
        matches = re.findall(pattern, people_info)
        for name, identity in matches:
            name = name.strip()
            identity = identity.strip()
            if name and identity:
                results.append({'公司名称': company, '联系人': name, '身份': identity})
    
    if results:
        # 保存结果
        df_out = pd.DataFrame(results)
        df_out.to_excel(output_file, index=False)
        print(f'处理完成，结果已保存到 {output_file}')
    else:
        print(f'在 {input_file} 中未找到有效数据')

def main():
    """主函数"""
    # 获取data/source目录
    base_dir = Path('data/source')
    if not base_dir.exists():
        print(f"目录不存在: {base_dir}")
        return
    
    # 获取所有子文件夹
    folders = [f for f in base_dir.iterdir() if f.is_dir()]
    
    if not folders:
        print(f"在 {base_dir} 中未找到子文件夹")
        return
    
    # 处理每个文件夹
    for folder in folders:
        print(f"\n处理文件夹: {folder.name}")
        process_merchant_list(folder)

if __name__ == "__main__":
    main() 